package practice8;

import java.util.Scanner;

//�����������ȶ���
public class P6 {
	
	static int n,m,limit;
	static int[][] matrix;
	
	public static int getStable(int a,int b) {
		int res=Integer.MAX_VALUE;
		int x=n-a+1;	
		int y=m-b+1;
		for(int i=1;i<=x;i++) {
			for(int j=1;j<=y;j++) {
				int max=0,min=Integer.MAX_VALUE;
				//i,j��ʾ�������ڵ���ʼλ��
				for(int x1=0;x1<a;x1++) {
					for(int y1=0;y1<b;y1++) {
						if(matrix[i+x1][j+y1]>max) {
							max=matrix[i+x1][j+y1];
						}
						if(matrix[i+x1][j+y1]<min) {
							min=matrix[i+x1][j+y1];
						}	
					}
				}
				int stable=max-min;
				res=Math.min(res, stable);
			}
		}
		return res;
	}

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		m=sc.nextInt();
		matrix=new int[n+1][m+1];
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=m;j++) {
				matrix[i][j]=sc.nextInt();
			}
		}
		limit=sc.nextInt();
		int s=0;
		for(int i=n;i>=1;i--) {
			for(int j=m;j>=1;j--) {
				int stable=getStable(i,j);
				if(stable<=limit) {
					s=Math.max(s, i*j);
				}
			}
		}
		System.out.println(s);
	}
}
